export {
	getDataFormat,  	// 日期格式化
	getWeek,         	// 获取当前日期是星期几
	getFormatSeconds, 	// 秒数转化为时分秒
};

// 补0
const zero = (n) => {
	return n < 10 ? '0' + n : n
}

/**
 * 日期格式化
 * @param Number time 例: new Date()
 */
const getDataFormat = (time, format = 'Y-M-D') => {
	const t = new Date(time)
	// 日期格式
	format = format || 'Y-M-D H:I:S'
	let year = t.getFullYear()
	// 由于 getMonth 返回值会比正常月份小 1
	let month = t.getMonth() + 1
	let day = t.getDate()
	let hours = t.getHours()
	let minutes = t.getMinutes()
	let seconds = t.getSeconds()

	const hash = {
		'y': year,
		'm': month,
		'd': day,
		'h': hours,
		'i': minutes,
		's': seconds
	}
	// 是否补 0
	const isAddZero = (o) => {
		return /M|D|H|I|S/.test(o)
	}
	return format.replace(/\w/g, o => {
		let rt = hash[o.toLocaleLowerCase()]
		return zero(rt)
	})
}

// 获取当前日期是星期几, 例: 2022-01-20
const getWeek = dateString => {
	let dateArray = dateString.split('-');
	const date = new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]);
	return '日一二三四五六'.charAt(date.getDay());
};

// 秒数转化为时分秒
const getFormatSeconds = (second) => {
	// 天
	const d = Math.floor(second / 86400);

	// 时
	const h = Math.floor((second % 86400) / 3600);

	// 分
	const m = Math.floor(((second % 86400) % 3600) / 60);

	// 秒
	const s = Math.floor(((second % 86400) % 3600) % 60);

	return {
		data: [d, h, m, s],
		zero: [zero(d), zero(h), zero(m), zero(s)]
	}
}